package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
	"path/filepath"
)

func main() {
	// 打印当前工作目录
	wd, err := os.Getwd()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("当前工作目录:", wd)

	// 创建 qinggan 文件夹
	dir := filepath.Join(wd, "python")
	if err := os.MkdirAll(dir, os.ModePerm); err != nil {
		fmt.Println("创建文件夹失败:", err)
		return
	}

	index := 1
	failCount := 0
	for {

		if index == 50 {
			break
		}
		// 构造图片 URL
		url := fmt.Sprintf("https://img.wenzhang.ihuaimi.com/python/%d.png", index)

		// 发送 GET 请求
		resp, err := http.Get(url)
		if err != nil {
			fmt.Println("请求失败:", err)
			failCount++
			index++
			if failCount >= 50 {
				break
			} else {
				continue
			}
		}
		defer resp.Body.Close()

		// 检查返回状态码
		if resp.StatusCode != http.StatusOK {
			failCount++
			index++
			if failCount >= 50 {
				fmt.Println("失败超过50次，没有找到图片，结束下载.", index)
				break
			} else {
				continue
			}
		}

		// 创建文件
		filePath := filepath.Join(dir, fmt.Sprintf("%d.jpg", index))
		file, err := os.Create(filePath)
		if err != nil {
			fmt.Println("创建文件失败:", err)
			break
		}
		defer file.Close()

		// 将响应体写入文件
		if _, err := io.Copy(file, resp.Body); err != nil {
			fmt.Println("写入文件失败:", err)
			break
		}

		fmt.Printf("下载成功: %s\n", filePath)
		index++
	}
}
